/* **********************************************************/
/* Arcans Project (2010)                                    */
/* Jeu sous forme d'application web entièrement conçu       */
/* et réalisé par Killian Le Maitre                         */
/* Jeu sous licence GNU GPL v3 (voir NOTICE et COPYING)     */
/* **********************************************************/

//extension de la fonction toHexStr de la classe Number
Number.prototype.toHexStr = function() {
	var s="", v;
	for (var i=7; i>=0; i--) { v = (this>>>(i*4)) & 0xf; s += v.toString(16); }
	return s;
}
//fonctions nécessaire pour le hashage
function ROTR(n, x) { return (x >>> n) | (x << (32-n)); }
function Sigma0(x) { return ROTR(2,  x) ^ ROTR(13, x) ^ ROTR(22, x); }
function Sigma1(x) { return ROTR(6,  x) ^ ROTR(11, x) ^ ROTR(25, x); }
function sigma0(x) { return ROTR(7,  x) ^ ROTR(18, x) ^ (x>>>3);  }
function sigma1(x) { return ROTR(17, x) ^ ROTR(19, x) ^ (x>>>10); }
function Ch(x, y, z)  { return (x & y) ^ (~x & z); }
function Maj(x, y, z) { return (x & y) ^ (x & z) ^ (y & z); }

//classe javascript de gestion du compte
var obj_cp = {
	//méthodes :
	hashFun: function (chaine) {
		//variables :
		var K = [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2];
		var H = [0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19];
		chaine += String.fromCharCode(0x80);
		var l = chaine.length/4 + 2;
		var N = Math.ceil(l/16);
		var M = new Array(N);
		for (var i=0; i<N; i++) {
			M[i] = new Array(16);
			for (var j=0; j<16; j++) {
				M[i][j] = (chaine.charCodeAt(i*64+j*4)<<24) | (chaine.charCodeAt(i*64+j*4+1)<<16) | (chaine.charCodeAt(i*64+j*4+2)<<8) | (chaine.charCodeAt(i*64+j*4+3));
			}
		}
		M[N-1][14] = ((chaine.length-1)*8) / Math.pow(2, 32); M[N-1][14] = Math.floor(M[N-1][14])
		M[N-1][15] = ((chaine.length-1)*8) & 0xffffffff;
		var W = new Array(64);
		var a, b, c, d, e, f, g, h;
		for (var i=0; i<N; i++) {
			for (var t=0;  t<16; t++) { W[t] = M[i][t]; }
			for (var t=16; t<64; t++) { W[t] = (sigma1(W[t-2]) + W[t-7] + sigma0(W[t-15]) + W[t-16]) & 0xffffffff; }
			a = H[0]; b = H[1]; c = H[2]; d = H[3]; e = H[4]; f = H[5]; g = H[6]; h = H[7];
			for (var t=0; t<64; t++) {
				var T1 = h + Sigma1(e) + Ch(e, f, g) + K[t] + W[t];
				var T2 = Sigma0(a) + Maj(a, b, c);
				h = g;
				g = f;
				f = e;
				e = (d + T1) & 0xffffffff;
				d = c;
				c = b;
				b = a;
				a = (T1 + T2) & 0xffffffff;
			}
			H[0] = (H[0]+a) & 0xffffffff;
			H[1] = (H[1]+b) & 0xffffffff; 
			H[2] = (H[2]+c) & 0xffffffff; 
			H[3] = (H[3]+d) & 0xffffffff; 
			H[4] = (H[4]+e) & 0xffffffff;
			H[5] = (H[5]+f) & 0xffffffff;
			H[6] = (H[6]+g) & 0xffffffff; 
			H[7] = (H[7]+h) & 0xffffffff; 
		}
		return H[0].toHexStr() + H[1].toHexStr() + H[2].toHexStr() + H[3].toHexStr() + H[4].toHexStr() + H[5].toHexStr() + H[6].toHexStr() + H[7].toHexStr();
	},
	cpOpen: function (choix) {
		window.scrollTo(0,0);
		document.body.style.overflow = "hidden";
		var voile = document.getElementById("voile");
		voile.style.display = "block";
		var encart = document.getElementById("encart");
		encart.style.display = "block";
		for (i = 0;i < 9;i++) window.setTimeout("document.getElementById('voile').style.opacity = 0." + i, 50*i);
		//choix de l'encart
		switch (choix) {
			case 1 : obj_cp.cpModPseudo(); break;
			case 2 : obj_cp.cpModEmail(); break;
			case 3 : obj_cp.cpModPwd(); break;
			case 4 : obj_cp.cpSupp(); break;
		}
	},
	cpModPseudo: function () {
		var encart = document.getElementById("encart");
		encart.style.top = "-360px";
		encart.style.left = "550px";
		encart.style.width = "420px";
		for (var i = 0;i < 9;i++) {
			var temp = -360 + i*50;
			window.setTimeout("document.getElementById('encart').style.top = '" + temp + "px';", 50*i);
		}
		var main_div = document.createElement("div");
		//titre
		var crea_child1 = document.createElement("h3");
		crea_child1.appendChild(document.createTextNode("Modification du pseudonyme :"));
		main_div.appendChild(crea_child1);
		//texte
		crea_child1 = document.createElement("p");
		crea_child1.appendChild(document.createTextNode("Seuls les caractères alphanumériques, ainsi que les tirets et le point, sont autorisés."));
		main_div.appendChild(crea_child1);
		//zone d'alerte
		crea_child1 = document.createElement("p");
		crea_child1.setAttribute("id", "result");
		main_div.appendChild(crea_child1);
		//table
			//première ligne
		crea_child1 = document.createElement("label");
		crea_child1.setAttribute("for", "pseudon");
		crea_child1.appendChild(document.createTextNode("Nouveau pseudonyme : "));
		var crea_child2 = document.createElement("td");
		crea_child2.appendChild(crea_child1);
		crea_child1 = document.createElement("input");
		crea_child1.setAttribute("maxlength", "15");
		crea_child1.setAttribute("id", "pseudon");
		var crea_child3 = document.createElement("td");
		crea_child3.appendChild(crea_child1);
		crea_child1 = document.createElement("input");
		crea_child1.setAttribute("type", "button");
		crea_child1.setAttribute("class", "button");
		crea_child1.setAttribute("value", "Vérifier");
		crea_child1.setAttribute("onclick", "javascript:obj_cp.cpPseudoVerif();");
		var crea_child4 = document.createElement("td");
		crea_child4.appendChild(crea_child1);
		crea_child1 = document.createElement("tr");
		crea_child1.appendChild(crea_child2);
		crea_child1.appendChild(crea_child3);
		crea_child1.appendChild(crea_child4);
			//deuxième ligne
		crea_child2 = document.createElement("label");
		crea_child2.setAttribute("for", "pseudoa");
		crea_child2.appendChild(document.createTextNode("Pseudonyme actuel : "));
		crea_child3 = document.createElement("td");
		crea_child3.appendChild(crea_child2);
		crea_child2 = document.createElement("input");
		crea_child2.setAttribute("maxlength", "15");
		crea_child2.setAttribute("id", "pseudoa");
		crea_child4 = document.createElement("td");
		crea_child4.appendChild(crea_child2);
		crea_child2 = document.createElement("tr");
		crea_child2.appendChild(crea_child3);
		crea_child2.appendChild(crea_child4);
			//troisième ligne
		crea_child3 = document.createElement("label");
		crea_child3.setAttribute("for", "pwd");
		crea_child3.appendChild(document.createTextNode("Mot de passe : "));
		crea_child4 = document.createElement("td");
		crea_child4.appendChild(crea_child3);
		crea_child3 = document.createElement("input");
		crea_child3.setAttribute("maxlength", "15");
		crea_child3.setAttribute("id", "pwd");
		crea_child3.setAttribute("type", "password");
		var crea_child5 = document.createElement("td");
		crea_child5.appendChild(crea_child3);
		crea_child3 = document.createElement("tr");
		crea_child3.appendChild(crea_child4);
		crea_child3.appendChild(crea_child5);
			//jointure
		crea_child4 = document.createElement("table");
		crea_child4.appendChild(crea_child1);
		crea_child4.appendChild(crea_child2);
		crea_child4.appendChild(crea_child3);
		main_div.appendChild(crea_child4);
		//bouton "Modifier"
		crea_child1 = document.createElement("input");
		crea_child1.setAttribute("type", "button");
		crea_child1.setAttribute("class", "button");
		crea_child1.setAttribute("value", "Modifier");
		crea_child1.setAttribute("onclick", "javascript:obj_cp.cpPseudoValid();");
		main_div.appendChild(crea_child1);
		//bouton "Annuler"
		crea_child1 = document.createElement("input");
		crea_child1.setAttribute("type", "button");
		crea_child1.setAttribute("class", "button");
		crea_child1.setAttribute("value", "Annuler");
		crea_child1.setAttribute("onclick", "javascript:obj_cp.cpClose();");
		main_div.appendChild(crea_child1);
		encart.appendChild(main_div);
	},
	cpPseudoVerif: function () {
		var result = document.getElementById("result");
		if (result.hasChildNodes()) result.removeChild(result.firstChild);
		var pseudo = document.getElementById("pseudon").value;
		var regpseudo = new RegExp(/^[\w]+[\w\-\.]{2,}$/);
		if (regpseudo.test(pseudo)) {
			//requete ajax de vérification de non doublon
			try { var xhr = new ActiveXObject('Msxml2.XMLHTTP'); }
			catch (e) {
				try { var xhr = new ActiveXObject('Microsoft.XMLHTTP'); }
				catch (e2) {
					try { var xhr = new XMLHttpRequest(); }
					catch (e3) { var xhr = false; }
				}
			}
			//xhr fonction
			xhr.onreadystatechange = function() {
				if(xhr.readyState  == 4) {
					if(xhr.status  == 200) {
						var res = xhr.responseText;
						if (res == 0) {
							result.appendChild(document.createElement("span"));
							result.firstChild.setAttribute("class", "valid");
							result.firstChild.appendChild(document.createTextNode("Vérification du nouveau pseudonyme terminé, pseudonyme disponible."));
						}
						else {
							result.appendChild(document.createElement("span"));
							result.firstChild.setAttribute("class", "erreur");
							result.firstChild.appendChild(document.createTextNode("Le pseudonyme est déjà utilisé."));
						}
					}
				}
			}
			//lancement de l'ajax
			xhr.open( "POST", "?p=ains",  true);
			xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			var donnees = 'info=' + pseudo;
			xhr.send(donnees);
		}
		else {
			var result = document.getElementById("result");
			var erreur = document.createElement("span");
			erreur.setAttribute("class", "erreur");
			erreur.appendChild(document.createTextNode("Le nouveau pseudonyme doit contenir au moins trois caractères alphanumériques, accompagné du point et des tirets, et doit commencer par une lettre."));
			result.appendChild(erreur);
		}
	},
	cpPseudoValid: function () {
		var result = document.getElementById("result");
		if (result.hasChildNodes()) result.removeChild(result.firstChild);
		var pseudon = document.getElementById("pseudon").value;
		var pseudoa = document.getElementById("pseudoa").value;
		var pwd = document.getElementById("pwd").value;
		var regval = new RegExp(/^[\w]+[\w\-\.]{2,}$/);
		if (regval.test(pseudon)) {
			if (regval.test(pseudoa)) {
				if (regval.test(pwd)) {
					//vérification de la disponibilité du pseudo
					try { var xhr = new ActiveXObject('Msxml2.XMLHTTP'); }
					catch (e) {
						try { var xhr = new ActiveXObject('Microsoft.XMLHTTP'); }
						catch (e2) {
							try { var xhr = new XMLHttpRequest(); }
							catch (e3) { var xhr = false; }
						}
					}
					//xhr fonction
					xhr.onreadystatechange = function() {
						if(xhr.readyState  == 4) {
							if(xhr.status  == 200) {
								var res = xhr.responseText;
								if (res == 0) {
									//vérification des logins
									try { var xhr2 = new ActiveXObject('Msxml2.XMLHTTP'); }
									catch (e4) {
										try { var xhr2 = new ActiveXObject('Microsoft.XMLHTTP'); }
										catch (e5) {
											try { var xhr2 = new XMLHttpRequest(); }
											catch (e6) { var xhr2 = false; }
										}
									}
									xhr2.onreadystatechange = function() {
										if(xhr2.readyState  == 4) {
											if(xhr2.status  == 200) {
												var res2 = xhr2.responseText;
												if (res2 == 1) {
													var encart = document.getElementById("encart");
													encart.removeChild(encart.firstChild);
													window.setTimeout('encart.appendChild(document.createElement("div"));', 260);
													window.setTimeout('encart.firstChild.appendChild(document.createElement("h3"));', 270);
													window.setTimeout('encart.firstChild.firstChild.appendChild(document.createTextNode("Modification du pseudonyme :"));', 300);
													window.setTimeout('var para = document.createElement("p");', 310);
													window.setTimeout('para.setAttribute("class", "valid");', 320);
													window.setTimeout('para.appendChild(document.createTextNode("Modification du pseudonyme réussie. Vous allez recevoir un courrier électronique de rappel de votre nouveau pseudonyme."));', 360);
													window.setTimeout('encart.firstChild.appendChild(para);', 380);
													window.setTimeout("obj_cp.cpClose();", 1900);
													window.setTimeout("document.getElementById('users').innerHTML = '" + pseudon + "';", 1950);
												}
												else {
													var crea_child = document.createElement("p");
													crea_child.setAttribute("class", "erreur");
													crea_child.appendChild(document.createTextNode("Vos identifiants ne sont pas valides !"));
													result.appendChild(crea_child);
												}
											}
										}
									}
									//lancement de l'ajax
									xhr2.open( "POST", "?p=acplogv",  true);
									xhr2.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
									var donnees = 'info1=' + pseudoa + '&info2=' + obj_cp.hashFun(pwd) + '&info3=' + pseudon;
									xhr2.send(donnees);
								}
								else {
									result.appendChild(document.createElement("span"));
									result.firstChild.setAttribute("class", "erreur");
									result.firstChild.appendChild(document.createTextNode("Le pseudonyme est déjà utilisé."));
								}
							}
						}
					}
					//lancement de l'ajax
					xhr.open( "POST", "?p=ains",  true);
					xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
					var donnees = 'info=' + pseudon;
					xhr.send(donnees);
				}
				else {
					var crea_child = document.createElement("p");
					crea_child.setAttribute("class", "erreur");
					crea_child.appendChild(document.createTextNode("Le mot de passe n'est pas valide ! (erreur dans l'écriture du mot de passe)"));
					result.appendChild(crea_child);
				}
			}
			else {
				var crea_child = document.createElement("p");
				crea_child.setAttribute("class", "erreur");
				crea_child.appendChild(document.createTextNode("Le pseudonyme n'est pas valide ! (erreur dans l'écriture du pseudonyme)"));
				result.appendChild(crea_child);
			}
		}
		else {
			var result = document.getElementById("result");
			var erreur = document.createElement("span");
			erreur.setAttribute("class", "erreur");
			erreur.appendChild(document.createTextNode("Le nouveau pseudonyme doit contenir au moins trois caractères alphanumériques, accompagné du point et des tirets, et doit commencer par une lettre."));
			result.appendChild(erreur);
		}
	},
	cpModEmail: function () {
		var encart = document.getElementById("encart");
		encart.style.top = "-360px";
		encart.style.left = "550px";
		encart.style.width = "400px";
		for (var i = 0;i < 9;i++) {
			var temp = -360 + i*50;
			window.setTimeout("document.getElementById('encart').style.top = '" + temp + "px';", 50*i);
		}
		var main_div = document.createElement("div");
		//titre
		var crea_child1 = document.createElement("h3");
		crea_child1.appendChild(document.createTextNode("Modification de l'adresse électronique :"));
		main_div.appendChild(crea_child1);
		//zone d'alerte
		crea_child1 = document.createElement("p");
		crea_child1.setAttribute("id", "result");
		main_div.appendChild(crea_child1);
		//table
			//première ligne
		crea_child1 = document.createElement("label");
		crea_child1.setAttribute("for", "emailn");
		crea_child1.appendChild(document.createTextNode("Nouvelle adresse électronique : "));
		var crea_child2 = document.createElement("td");
		crea_child2.appendChild(crea_child1);
		crea_child1 = document.createElement("input");
		crea_child1.setAttribute("id", "emailn");
		var crea_child3 = document.createElement("td");
		crea_child3.appendChild(crea_child1);
		crea_child1 = document.createElement("tr");
		crea_child1.appendChild(crea_child2);
		crea_child1.appendChild(crea_child3);
			//deuxième ligne
		crea_child2 = document.createElement("label");
		crea_child2.setAttribute("for", "pseudo");
		crea_child2.appendChild(document.createTextNode("Pseudonyme : "));
		crea_child3 = document.createElement("td");
		crea_child3.appendChild(crea_child2);
		crea_child2 = document.createElement("input");
		crea_child2.setAttribute("maxlength", "15");
		crea_child2.setAttribute("id", "pseudo");
		var crea_child4 = document.createElement("td");
		crea_child4.appendChild(crea_child2);
		crea_child2 = document.createElement("tr");
		crea_child2.appendChild(crea_child3);
		crea_child2.appendChild(crea_child4);
			//troisième ligne
		crea_child3 = document.createElement("label");
		crea_child3.setAttribute("for", "pwd");
		crea_child3.appendChild(document.createTextNode("Mot de passe : "));
		crea_child4 = document.createElement("td");
		crea_child4.appendChild(crea_child3);
		crea_child3 = document.createElement("input");
		crea_child3.setAttribute("maxlength", "15");
		crea_child3.setAttribute("id", "pwd");
		crea_child3.setAttribute("type", "password");
		var crea_child5 = document.createElement("td");
		crea_child5.appendChild(crea_child3);
		crea_child3 = document.createElement("tr");
		crea_child3.appendChild(crea_child4);
		crea_child3.appendChild(crea_child5);
			//jointure
		crea_child4 = document.createElement("table");
		crea_child4.appendChild(crea_child1);
		crea_child4.appendChild(crea_child2);
		crea_child4.appendChild(crea_child3);
		main_div.appendChild(crea_child4);
		//bouton "Modifier"
		crea_child1 = document.createElement("input");
		crea_child1.setAttribute("type", "button");
		crea_child1.setAttribute("class", "button");
		crea_child1.setAttribute("value", "Modifier");
		crea_child1.setAttribute("onclick", "javascript:obj_cp.cpEmailValid();");
		main_div.appendChild(crea_child1);
		//bouton "Annuler"
		crea_child1 = document.createElement("input");
		crea_child1.setAttribute("type", "button");
		crea_child1.setAttribute("class", "button");
		crea_child1.setAttribute("value", "Annuler");
		crea_child1.setAttribute("onclick", "javascript:obj_cp.cpClose();");
		main_div.appendChild(crea_child1);
		encart.appendChild(main_div);
	},
	cpEmailValid: function () {
		var result = document.getElementById("result");
		if (result.hasChildNodes()) result.removeChild(result.firstChild);
		var pseudo = document.getElementById("pseudo").value;
		var pwd = document.getElementById("pwd").value;
		var emailn = document.getElementById("emailn").value;
		var regval = new RegExp(/^[\w]+[\w\-\.]{2,}$/);
		var regemail = new RegExp(/^[a-zA-Z0-9]+([_|\.|-]{1}[a-zA-Z0-9]+)*@[a-zA-Z0-9]+([_|\.|-]­{1}[a-zA-Z0-9]+)*[\.]{1}[a-z]{2,6}$/);
		if (regemail.test(emailn)) {
			if (regval.test(pseudo)) {
				if (regval.test(pwd)) {
					//requete ajax
					try { var xhr = new ActiveXObject('Msxml2.XMLHTTP'); }
					catch (e) {
						try { var xhr = new ActiveXObject('Microsoft.XMLHTTP'); }
						catch (e2) {
							try { var xhr = new XMLHttpRequest(); }
							catch (e3) { var xhr = false; }
						}
					}
					//xhr fonction
					xhr.onreadystatechange = function() {
						if(xhr.readyState  == 4) {
							if(xhr.status  == 200) {
								var res = xhr.responseText;
								if (res == 1) {
									var encart = document.getElementById("encart");
									encart.removeChild(encart.firstChild);
									window.setTimeout('encart.appendChild(document.createElement("div"));', 260);
									window.setTimeout('encart.firstChild.appendChild(document.createElement("h3"));', 270);
									window.setTimeout('encart.firstChild.firstChild.appendChild(document.createTextNode("Modification de l\'adresse électronique :"));', 300);
									window.setTimeout('var para = document.createElement("p");', 310);
									window.setTimeout('para.setAttribute("class", "valid");', 320);
									window.setTimeout('para.appendChild(document.createTextNode("Modification de l\'adresse électronique réussie. Vous allez recevoir un courrier électronique de rappel de votre nouvelle adresse."));', 360);
									window.setTimeout('encart.firstChild.appendChild(para);', 380);
									window.setTimeout("obj_cp.cpClose();", 1900);
									window.setTimeout("document.getElementById('email').innerHTML = '"+ emailn +"';", 1950);
								}
								else {
									var result = document.getElementById("result");
									var erreur = document.createElement("span");
									erreur.setAttribute("class", "erreur");
									erreur.appendChild(document.createTextNode("Les identifiants ne sont pas valides, la vérification a échoué."));
									result.appendChild(erreur);
								}
							}
						}
					}
					//lancement de l'ajax
					xhr.open( "POST", "?p=amailmod",  true);
					xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
					var donnees = 'info1=' + pseudo + '&info2=' + obj_cp.hashFun(pwd) + '&info3=' + emailn;
					xhr.send(donnees);
				}
				else {
					var result = document.getElementById("result");
					var erreur = document.createElement("span");
					erreur.setAttribute("class", "erreur");
					erreur.appendChild(document.createTextNode("Le mot de passe n'est pas valide ! (erreur dans l'écriture du mot de passe)"));
					result.appendChild(erreur);
				}
			}
			else {
				var result = document.getElementById("result");
				var erreur = document.createElement("span");
				erreur.setAttribute("class", "erreur");
				erreur.appendChild(document.createTextNode("Le pseudonyme n'est pas valide ! (erreur dans l'écriture du pseudonyme)"));
				result.appendChild(erreur);
			}
		}
		else {
			var result = document.getElementById("result");
			var erreur = document.createElement("span");
			erreur.setAttribute("class", "erreur");
			erreur.appendChild(document.createTextNode("L'adresse électronique n'est pas valide !"));
			result.appendChild(erreur);
		}
	},
	cpModPwd: function () {
		var encart = document.getElementById("encart");
		encart.style.top = "-360px";
		encart.style.left = "550px";
		encart.style.width = "350px";
		for (var i = 0;i < 9;i++) {
			var temp = -360 + i*50;
			window.setTimeout("document.getElementById('encart').style.top = '" + temp + "px';", 50*i);
		}
		var main_div = document.createElement("div");
		//titre
		var crea_child1 = document.createElement("h3");
		crea_child1.appendChild(document.createTextNode("Modification du mot de passe :"));
		main_div.appendChild(crea_child1);
		//zone d'alerte
		crea_child1 = document.createElement("p");
		crea_child1.setAttribute("id", "result");
		main_div.appendChild(crea_child1);
		//table
			//première ligne
		crea_child1 = document.createElement("label");
		crea_child1.setAttribute("for", "pwdn1");
		crea_child1.appendChild(document.createTextNode("Nouveau mot de passe : "));
		var crea_child2 = document.createElement("td");
		crea_child2.appendChild(crea_child1);
		crea_child1 = document.createElement("input");
		crea_child1.setAttribute("maxlength", "15");
		crea_child1.setAttribute("id", "pwdn1");
		crea_child1.setAttribute("type", "password");
		var crea_child3 = document.createElement("td");
		crea_child3.appendChild(crea_child1);
		crea_child1 = document.createElement("tr");
		crea_child1.appendChild(crea_child2);
		crea_child1.appendChild(crea_child3);
			//deuxième ligne
		crea_child2 = document.createElement("label");
		crea_child2.setAttribute("for", "pwdn2");
		crea_child2.appendChild(document.createTextNode("Confirmation : "));
		crea_child3 = document.createElement("td");
		crea_child3.appendChild(crea_child2);
		crea_child2 = document.createElement("input");
		crea_child2.setAttribute("maxlength", "15");
		crea_child2.setAttribute("id", "pwdn2");
		crea_child2.setAttribute("type", "password");
		var crea_child4 = document.createElement("td");
		crea_child4.appendChild(crea_child2);
		crea_child2 = document.createElement("tr");
		crea_child2.appendChild(crea_child3);
		crea_child2.appendChild(crea_child4);
			//troisième ligne
		crea_child3 = document.createElement("label");
		crea_child3.setAttribute("for", "pseudo");
		crea_child3.appendChild(document.createTextNode("Pseudonyme : "));
		crea_child4 = document.createElement("td");
		crea_child4.appendChild(crea_child3);
		crea_child3 = document.createElement("input");
		crea_child3.setAttribute("maxlength", "15");
		crea_child3.setAttribute("id", "pseudo");
		var crea_child5 = document.createElement("td");
		crea_child5.appendChild(crea_child3);
		crea_child3 = document.createElement("tr");
		crea_child3.appendChild(crea_child4);
		crea_child3.appendChild(crea_child5);
			//quatrième ligne
		crea_child4 = document.createElement("label");
		crea_child4.setAttribute("for", "pwda");
		crea_child4.appendChild(document.createTextNode("Mot de passe actuel : "));
		crea_child5 = document.createElement("td");
		crea_child5.appendChild(crea_child4);
		crea_child4 = document.createElement("input");
		crea_child4.setAttribute("type", "password");
		crea_child4.setAttribute("maxlenth", "15");
		crea_child4.setAttribute("id", "pwda");
		var crea_child6 = document.createElement("td");
		crea_child6.appendChild(crea_child4);
		crea_child4 = document.createElement("tr");
		crea_child4.appendChild(crea_child5);
		crea_child4.appendChild(crea_child6);
			//jointure
		crea_child5 = document.createElement("table");
		crea_child5.appendChild(crea_child1);
		crea_child5.appendChild(crea_child2);
		crea_child5.appendChild(crea_child3);
		crea_child5.appendChild(crea_child4);
		main_div.appendChild(crea_child5);
		//bouton "Modifier"
		crea_child1 = document.createElement("input");
		crea_child1.setAttribute("type", "button");
		crea_child1.setAttribute("class", "button");
		crea_child1.setAttribute("value", "Modifier");
		crea_child1.setAttribute("onclick", "javascript:obj_cp.cpPwdValid();");
		main_div.appendChild(crea_child1);
		//bouton "Annuler"
		crea_child1 = document.createElement("input");
		crea_child1.setAttribute("type", "button");
		crea_child1.setAttribute("class", "button");
		crea_child1.setAttribute("value", "Annuler");
		crea_child1.setAttribute("onclick", "javascript:obj_cp.cpClose();");
		main_div.appendChild(crea_child1);
		encart.appendChild(main_div);
	},
	cpPwdValid: function () {
		var result = document.getElementById("result");
		if (result.hasChildNodes()) result.removeChild(result.firstChild);
		var pwdn1 = document.getElementById("pwdn1").value;
		var pwdn2 = document.getElementById("pwdn2").value;
		var pseudo = document.getElementById("pseudo").value;
		var pwda = document.getElementById("pwda").value;
		var regval = new RegExp(/^[\w]+[\w\-\.]{2,}$/);
		if (regval.test(pwdn1)) {
			if (pwdn1 == pwdn2) {
				if (regval.test(pseudo)) {
					if (regval.test(pwda)) {
						//requete ajax
						try { var xhr = new ActiveXObject('Msxml2.XMLHTTP'); }
						catch (e) {
							try { var xhr = new ActiveXObject('Microsoft.XMLHTTP'); }
							catch (e2) {
								try { var xhr = new XMLHttpRequest(); }
								catch (e3) { var xhr = false; }
							}
						}
						//xhr fonction
						xhr.onreadystatechange = function() {
							if(xhr.readyState  == 4) {
								if(xhr.status  == 200) {
									var res = xhr.responseText;
									if (res == 1) {
										var encart = document.getElementById("encart");
										encart.removeChild(encart.firstChild);
										window.setTimeout('encart.appendChild(document.createElement("div"));', 260);
										window.setTimeout('encart.firstChild.appendChild(document.createElement("h3"));', 270);
										window.setTimeout('encart.firstChild.firstChild.appendChild(document.createTextNode("Modification du mot de passe :"));', 300);
										window.setTimeout('var para = document.createElement("p");', 310);
										window.setTimeout('para.setAttribute("class", "valid");', 320);
										window.setTimeout('para.appendChild(document.createTextNode("Modification du mot de passe réussie. Vous allez recevoir un courrier électronique de rappel de votre nouveau mot de passe."));', 360);
										window.setTimeout('encart.firstChild.appendChild(para);', 380);
										window.setTimeout("obj_cp.cpClose();", 1900);
									}
									else {
										var result = document.getElementById("result");
										var erreur = document.createElement("span");
										erreur.setAttribute("class", "erreur");
										erreur.appendChild(document.createTextNode("Les identifiants ne sont pas valides, la vérification a échoué."));
										result.appendChild(erreur);
									}
								}
							}
						}
						//lancement de l'ajax
						xhr.open( "POST", "?p=apwdmod",  true);
						xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
						var donnees = 'info1=' + this.hashFun(pwdn1) + '&info2=' + pwdn2 + '&info3=' + pseudo + '&info4=' + this.hashFun(pwda);
						xhr.send(donnees);
					}
					else {
						var result = document.getElementById("result");
						var erreur = document.createElement("span");
						erreur.setAttribute("class", "erreur");
						erreur.appendChild(document.createTextNode("Le mot de passe n'est pas valide. (erreur dans l'écriture du mot de passe)"));
						result.appendChild(erreur);
					}
				}
				else {
					var result = document.getElementById("result");
					var erreur = document.createElement("span");
					erreur.setAttribute("class", "erreur");
					erreur.appendChild(document.createTextNode("Le pseudonyme n'est pas valide. (erreur dans l'écriture du pseudonyme)"));
					result.appendChild(erreur);
				}
			}
			else {
				var result = document.getElementById("result");
				var erreur = document.createElement("span");
				erreur.setAttribute("class", "erreur");
				erreur.appendChild(document.createTextNode("La confirmation ne correspond pas."));
				result.appendChild(erreur);
			}
		}
		else {
			var result = document.getElementById("result");
			var erreur = document.createElement("span");
			erreur.setAttribute("class", "erreur");
			erreur.appendChild(document.createTextNode("Le nouveau mot de passe n'est pas valide !"));
			result.appendChild(erreur);
		}
	},
	cpSupp: function () {
		var encart = document.getElementById("encart");
		encart.style.top = "-360px";
		encart.style.left = "550px";
		encart.style.width = "350px";
		for (var i = 0;i < 9;i++) {
			var temp = -360 + i*50;
			window.setTimeout("document.getElementById('encart').style.top = '" + temp + "px';", 50*i);
		}
		var main_div = document.createElement("div");
		//titre
		var crea_child1 = document.createElement("h3");
		crea_child1.appendChild(document.createTextNode("Suppression du compte :"));
		main_div.appendChild(crea_child1);
		//texte 1
		crea_child1 = document.createElement("p");
		crea_child1.appendChild(document.createTextNode("Pour supprimer votre compte, veuillez rentrer vos identifiants"));
		main_div.appendChild(crea_child1);
		//texte 2
		crea_child1 = document.createElement("p");
		crea_child1.appendChild(document.createTextNode("Une fois votre compte supprimer, la page va se recharger en vous déconnectant automatiquement."));
		main_div.appendChild(crea_child1);
		//texte 3
		crea_child1 = document.createElement("p");
		crea_child1.appendChild(document.createTextNode("Un courrier électronique de confirmation de la suppression de compte vous era également envoyé. N'oubliez pas de cliquer sur le lien du courrier."));
		main_div.appendChild(crea_child1);
		//zone d'alerte
		crea_child1 = document.createElement("p");
		crea_child1.setAttribute("id", "result");
		main_div.appendChild(crea_child1);
		//table
			//première ligne
		crea_child1 = document.createElement("label");
		crea_child1.setAttribute("for", "pseudo");
		crea_child1.appendChild(document.createTextNode("Pseudonyme : "));
		var crea_child2 = document.createElement("td");
		crea_child2.appendChild(crea_child1);
		crea_child1 = document.createElement("input");
		crea_child1.setAttribute("maxlength", "15");
		crea_child1.setAttribute("id", "pseudo");
		var crea_child3 = document.createElement("td");
		crea_child3.appendChild(crea_child1);
		crea_child1 = document.createElement("tr");
		crea_child1.appendChild(crea_child2);
		crea_child1.appendChild(crea_child3);
			//deuxième ligne
		crea_child2 = document.createElement("label");
		crea_child2.setAttribute("for", "pwd");
		crea_child2.appendChild(document.createTextNode("Mot de passe : "));
		crea_child3 = document.createElement("td");
		crea_child3.appendChild(crea_child2);
		crea_child2 = document.createElement("input");
		crea_child2.setAttribute("maxlength", "15");
		crea_child2.setAttribute("id", "pwd");
		crea_child2.setAttribute("type", "password");
		var crea_child4 = document.createElement("td");
		crea_child4.appendChild(crea_child2);
		crea_child2 = document.createElement("tr");
		crea_child2.appendChild(crea_child3);
		crea_child2.appendChild(crea_child4);
			//jointure
		crea_child5 = document.createElement("table");
		crea_child5.appendChild(crea_child1);
		crea_child5.appendChild(crea_child2);
		main_div.appendChild(crea_child5);
		//bouton "Modifier"
		crea_child1 = document.createElement("input");
		crea_child1.setAttribute("type", "button");
		crea_child1.setAttribute("class", "button");
		crea_child1.setAttribute("value", "Modifier");
		crea_child1.setAttribute("onclick", "javascript:obj_cp.cpSuppValid();");
		main_div.appendChild(crea_child1);
		//bouton "Annuler"
		crea_child1 = document.createElement("input");
		crea_child1.setAttribute("type", "button");
		crea_child1.setAttribute("class", "button");
		crea_child1.setAttribute("value", "Annuler");
		crea_child1.setAttribute("onclick", "javascript:obj_cp.cpClose();");
		main_div.appendChild(crea_child1);
		encart.appendChild(main_div);
	},
	cpSuppValid: function () {
		var result = document.getElementById("result");
		if (result.hasChildNodes()) result.removeChild(result.firstChild);
		var pseudo = document.getElementById("pseudo").value;
		var pwd = document.getElementById("pwd").value;
		//requete ajax
		try { var xhr = new ActiveXObject('Msxml2.XMLHTTP'); }
		catch (e) {
			try { var xhr = new ActiveXObject('Microsoft.XMLHTTP'); }
			catch (e2) {
				try { var xhr = new XMLHttpRequest(); }
				catch (e3) { var xhr = false; }
			}
		}
		//xhr fonction
		xhr.onreadystatechange = function() {
			if(xhr.readyState  == 4) {
				if(xhr.status  == 200) {
					var res = xhr.responseText;
					if (res == 1) {
						var encart = document.getElementById("encart");
						encart.removeChild(encart.firstChild);
						window.setTimeout('encart.appendChild(document.createElement("div"));', 260);
						window.setTimeout('encart.firstChild.appendChild(document.createElement("h3"));', 270);
						window.setTimeout('encart.firstChild.firstChild.appendChild(document.createTextNode("Suppression du compte :"));', 300);
						window.setTimeout('var para = document.createElement("p");', 310);
						window.setTimeout('para.setAttribute("class", "valid");', 320);
						window.setTimeout('para.appendChild(document.createTextNode("Suppression du compte réussie, vous allez recevoir un courrier électronique de confirmation. Vous allez être automatiquement déconnecté."));', 340);
						window.setTimeout('para.appendChild(document.createElement("br");', 350);
						window.setTimeout('para.appendChild(document.createTextNode("Si vous ne validez ou n\'annulez pas la suppression, le compte sera quand même supprimé."));', 360);
						window.setTimeout('encart.firstChild.appendChild(para);', 380);
						window.setTimeout("obj_cp.cpClose();", 1900);
						window.setTimeout("location.replace('?p=i');", 2100);
					}
					else {
						var result = document.getElementById("result");
						var erreur = document.createElement("span");
						erreur.setAttribute("class", "erreur");
						erreur.appendChild(document.createTextNode("Les identifiants ne sont pas valides, la vérification a échoué."));
						result.appendChild(erreur);
					}
				}
			}
		}
		//lancement de l'ajax
		xhr.open( "POST", "?p=asupp",  true);
		xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		var donnees = 'info1=' + pseudo + '&info2=' + this.hashFun(pwd);
		xhr.send(donnees);
	},
	cpClose: function () {
		for (var i = 0; i < 9; i++) {
			window.setTimeout("document.getElementById('voile').style.opacity = 0." + (8 - i), 50*i);
			var temp = 40 - i*50;
			window.setTimeout("document.getElementById('encart').style.top = '" + temp + "px';", 50*i);
		}
		window.setTimeout("document.getElementById('encart').removeChild(document.getElementById('encart').firstChild);", 395);
		window.setTimeout("document.getElementById('voile').style.display = 'none'", 400);
		window.setTimeout("document.getElementById('encart').style.display = 'none'", 400);
		document.body.style.overflow = "auto";
	}
}